package WrittenTest;

import java.util.Scanner;

public class test37 {
    // 小葱的01串：给定一个长度为偶数的环形01字符串。(环形指：第一个字符和最后一个字符是相邻的)字符串初始每个字符都是白色。
    // 小葱想把一段连续区间染成红色，
    // 使得红色的字符'0'数量等于白色的字符'0数量，红色的字符1数量等于白色的字符1数量。问有多少种不同的染色方法?
    // 算法原理：滑动窗口 + 哈希表
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 处理输入
        int n = in.nextInt();
        String s = in.next();
        // 模拟哈希表
        int[] hash1 = new int[2];
        int[] hash2 = new int[2];
        for (int i = 0; i < n; i++) {
            hash1[s.charAt(i) - '0']++;
        }
        int ret = 0;
        // 进窗口
        for (int left = 0, right = 0; left < n; ) {
            char ch = s.charAt(right);
            hash2[ch - '0']++;
            // 判断 + 更新结果
            if (hash2[0] * 2 == hash1[0] && hash2[1] * 2 == hash1[1]) {
                ret++;
            }
            // 出窗口
            while ((hash2[0] + hash2[1]) * 2 == s.length()) {
                char out = s.charAt(left++);
                hash2[out - '0']--;
            }
            right++;
            // 处理环形的情况
            if (right == n) right = 0;
        }
        System.out.println(ret);
    }
}
